package com.gxy.learn.design.model.behaviour.memento.white_box;

import lombok.extern.slf4j.Slf4j;

/**
 * @description: 备忘录白盒模式 测试
 * @author: gaoxueyong
 * @Date: 2022/11/9 09:42
 */
@Slf4j
public class Client {
    public static void main(String[] args) {
        log.info("大战boss前。。。。。。。。。");
//        创建游戏角色
        GameRole gameRole = new GameRole();
        gameRole.initState();
        gameRole.displayState();

//        创建管理者角色 备份状态
        RoleStateCaretaker roleStateCaretaker = new RoleStateCaretaker();
        roleStateCaretaker.setRoleStateMemento(gameRole.saveState());
        log.info("大战boss后。。。。。。。。。");
        gameRole.fight();
        gameRole.displayState();
        log.info("恢复之前状态。。。。。。。。。");
        gameRole.recoverState(roleStateCaretaker.getRoleStateMemento());
        gameRole.displayState();

    }
}
